package main

import (
	"flag"
	"fmt"
	"os"
	"sort"

	"gitee.com/underdogs/x-smi/query"
)

func main() {
	// 解析命令行参数
	gpuType := flag.String("type", "metax", "GPU类型 (metax, nvidia)")
	flag.Parse()

	// 获取查询器
	queryer, err := query.GetQueryer(*gpuType)
	if err != nil {
		fmt.Fprintf(os.Stderr, "错误: %v\n", err)
		os.Exit(1)
	}

	// 获取GPU信息
	gpus, err := queryer.Query()
	if err != nil {
		fmt.Fprintf(os.Stderr, "错误: %v\n", err)
		os.Exit(1)
	}

	// 按索引升序排序
	sort.Slice(gpus, func(i, j int) bool {
		return gpus[i].Index < gpus[j].Index
	})

	// 输出CSV格式的结果
	for _, gpu := range gpus {
		fmt.Printf("%d, %d, %d, %d\n", gpu.Index, gpu.Utilization, gpu.MemoryUsed, gpu.MemoryTotal)
	}
}
